{erl_opts, [debug_info, warn_export_vars, warn_shadow_vars, warn_obsolete_guard]}.

{plugins, [
           rebar3_elixir,
           rebar3_hex,
           rebar3_lint
          ]}.

{elixir_bindings, [
                   {vice, [{except, [
                                     init
                                     , handle_call
                                     , handle_cast
                                     , handle_info
                                     , terminate
                                     , code_change
                                    ]}]},
                   {vice_subtitles, [{as, "Vice.Subtitles"}]},
                   {vice_thumbnails, [{as, "Vice.Thumbnails"},
                                      {except, [thumbnails_finalize]}]}
                  ]}.

{deps, [
  {bucs, "~> 1.1.0"},
  {doteki, "~> 1.1.0"},
  {poolgirl, "~> 1.3.0"},
  {file_signatures, "~> 0.1.9"},
  {jsx, "~> 2.9.0"}
 ]}.

{pre_hooks, [{compile, "make -C c_src -f Makefile.build"}]}.

{eunit_opts, [no_tty, {report, {unite_compact, [profile]}}]}.

{profiles, [
            {test, [
                    {deps, [
                            meck,
                            unite
                           ]}
                   ]},
            {docs, [
                   {deps, [
                           edown
                          ]},
                   {edoc_opts, [
                                {doclet, edown_doclet}
                                , {app_default, "http://www.erlang.org/doc/man"}
                                , {source_path, ["src"]}
                                , {overview, "overview.edoc"}
                                , {stylesheet, ""}
                                , {image, ""}
                                , {edown_target, gitlab}
                                , {top_level_readme, {"./README.md", "https://gitlab.com/glejeune/vice"}}
                               ]}
                   ]},
            {release, [
                       {elvis, [
                        #{dirs => ["."],
                          filter => "rebar.config",
                          rules => [{elvis_project, no_deps_master_rebar, []}]}]}
                      ]}
           ]}.

{elvis,
   [#{dirs => ["src", "test"],
      filter => "*.erl",
      ignore => [vice_prv_subs_parser],
      rules => [{elvis_style, line_length, #{limit => 180}},
                {elvis_style, no_tabs},
                {elvis_style, no_trailing_whitespace},
                {elvis_style, macro_names},
                {elvis_style, macro_module_names},
                {elvis_style, dont_repeat_yourself, #{min_complexity => 25}},
                {elvis_style, operator_spaces, #{rules => [{right, ","},
                                                           {right, "++"},
                                                           {left, "++"}]}}]}]}.

{xref_warnings, false}.
{xref_extra_paths, []}.
{xref_ignores, [{vice_prv_subs_parser, return_error, 2}, {erlang, ceil, 1}, {string, chomp, 1}, {image_optimizer, optimize, 1}]}.
{xref_checks, [undefined_function_calls
               , undefined_functions
               , locals_not_used
%               , exports_not_used
               , deprecated_function_calls
               , deprecated_functions]}.

{dialyzer, [{plt_prefix, "vice"}]}.
